package servidores;

import java.util.ArrayList;
import java.util.Collection;

/**Las clases hijas de la clase RutAsignada son objetos que se
 * guardan en la base de datos de rutas
 * */
public class Desde01Hasta02Directo extends RutaAsignada {
	public static final int desde = 1;
	public static final int hasta = 2;
	protected static int instancias=0;
	protected ArrayList<Indicaciones>indic;

	public Desde01Hasta02Directo() {
		Desde01Hasta02Directo.instancias++;
		this.indic=indicacionesDesdeDB();
	}
	
	/**Levanta las indicaciones desde 1 a 2 por ruta directa desde la base de datos mientras tando
	 * se ingresan las indicaciones de prueba
	 * */
	private ArrayList<Indicaciones> indicacionesDesdeDB() {
		ArrayList<Indicaciones>indic=new ArrayList<Indicaciones>();
		Indicaciones i=new Indicaciones(1, 2, "Ruta a","avance 3"+RutaAsignada.unidad+" por ruta A");
		indic.add(i);
		i=new Indicaciones(1, 2, "Ruta a","avance 2"+RutaAsignada.unidad+" por ruta A");
		indic.add(i);
		i=new Indicaciones(1, 2, "Ruta a","avance 1"+RutaAsignada.unidad+" por ruta A");
		indic.add(i);
		i=new Indicaciones(1, 2, "Ruta a","Ha llegado a su destino");
		indic.add(i);
		return indic;
	}

	/**Muestra la indicacion que sera devuelta en la proxima getIndicacion
	 * */
	public String toString() {
		return this.indic.get(0).toString();
	}


	/**Devuelve el punto por el que pasara segun las indicaciones
	 * */
	public int getPunto() {
		return this.indic.get(0).getPuntoProximo();
	}

	/**devuelve la indicacion siguiente
	 * */
	public Indicaciones getIndicacion() {
		return this.indic.remove(0);
	}

	/**alarga el camino actual asignado
	 * */
	public void add(RutaAsignada rutAsignada) {
		indic.remove(indic.size());//borra la indicación que dice que llego al destino
		indic.addAll(rutAsignada.getListaDeIndicaciones());
	}

	/**entrega una collection con todas las indicaciones
	 * */
	public Collection<? extends Indicaciones> getListaDeIndicaciones() {
		return indic.subList(0, indic.size());
	}

}
